import PERM_ENUM from '@/permission/PermEnum'

/**
 * 权限校验
 * @param loginUser 当前用户
 * @param needPerm 需要的权限
 */
const hasPerm = (
  loginUser: API.User,
  needPerm: string = PERM_ENUM.NOT_LOGIN,
) => {
  const loginUserAccess = loginUser?.userRole ?? PERM_ENUM.NOT_LOGIN;
  // 如果不需要权限
  if (needPerm === PERM_ENUM.NOT_LOGIN) {
    return true;
  }
  // 如果未登录则无权限
  if (
    needPerm === PERM_ENUM.USER &&
    loginUserAccess === PERM_ENUM.NOT_LOGIN
  ) {
    return false;
  }
  // 需要管理员权限但是没有管理员权限
  return !(
    needPerm == PERM_ENUM.ADMIN && loginUserAccess !== PERM_ENUM.ADMIN
  );
};

export default hasPerm;
